
/**
 * 加法，返回String格式
 * @param value     验证内容
 * @param rules     验证规则  {code: '编码', regex: '规则', message: '消息'}
 * @returns { string }  验证提示
 */
export function verify(value, rules) {
  for (const ind in rules) {
    const rule = rules[ind]
    if (rule.code !== undefined && rule.code !== "") { // 如果有code，按预设内容处理
      if (rule.code === "number" && !check_number(value)) {
        return rule.message
      } else if (rule.code === "positiveNumber" && !check_positiveNumber(value)) {
        return rule.message
      } else if (rule.code === "phone" && !check_phone(value)) {
        return rule.message
      } else if (rule.code === "email" && !check_email(value)) {
        return rule.message
      }
    } else { // 如果没有code，按正则处理
      const reg = new RegExp(rule.regex)
      if (!reg.test(value)) {
        return rule.message
      }
    }
  }
  return null
}

/**
 * 验证是否为Number格式
 * @param value     参数
 * @returns { boolean }
 */
export function check_number(value) {
  const reg = new RegExp('^[0-9]*$')
  if (!reg.test(value)) {
    return false
  }
  return true
}

/**
 * 验证是否为正数
 * @param value     参数
 * @returns { boolean }
 */
export function check_positiveNumber(value) {
  if (!check_number(value)) {
    return false
  } else {
    return Number(value) > 0
  }
}

/**
 * 验证是否为手机号格式
 * @param value     参数
 * @returns { boolean }
 */
export function check_phone(value) {
  const reg = new RegExp('(^(d{3,4}-)?d{7,8})$|(^13[0-9]{9}$)')
  if (!reg.test(value)) {
    return false
  }
  return true
}

/**
 * 验证是否为email格式
 * @param value     参数
 * @returns { boolean }
 */
export function check_email(value) {
  const reg = new RegExp('^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$')
  if (!reg.test(value)) {
    return false
  }
  return true
}
